﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Web;

/// <summary>
/// Descripción breve de GeneradorDatos
/// </summary>
public class GeneradorDatos
{
    ServicioPeliculas.Service1Client servicioweb = new ServicioPeliculas.Service1Client();
    public GeneradorDatos()
    {
        //
        // TODO: Agregar aquí la lógica del constructor
        //
    }

    public string generarPeliculasPorCategoria(int idcategoria)
    {
        try
        {
            StringBuilder textrespuesta = new StringBuilder();
            DataSet ds = new DataSet();
            string log = "";
            if (servicioweb.selectMoviesByCategory(idcategoria, ref ds, ref log))
            {
                if (ds != null)
                {
                    if (ds.Tables.Count > 0)
                    {
                        if (ds.Tables[0].Rows.Count > 0)
                        {
                            textrespuesta.Append("<h2>" + ds.Tables[0].Rows[0][5] + "</h2>");
                            textrespuesta.Append("<hr id='peliculas_categoryseparator'/>");
                            //recorrer las filas
                            for (int a = 0; a < ds.Tables[0].Rows.Count; a++)
                            {
                                textrespuesta.Append("<div class='peliculas_pelicontainer'>");
                                textrespuesta.Append("<div class='peliculas_pelititle'>");
                                textrespuesta.Append(ds.Tables[0].Rows[a][1]);
                                textrespuesta.Append("</div>");
                                textrespuesta.Append("<div class='peliculas_peliimag'>");
                                textrespuesta.Append("<img class='peliport' src='../" + ds.Tables[0].Rows[a][3] + "/" + ds.Tables[0].Rows[a][4] + "'/>");
                                textrespuesta.Append("</div>");
                                textrespuesta.Append("<input type='hidden' value='" + ds.Tables[0].Rows[a][0] + "'/>");
                                textrespuesta.Append("</div>");
                            }
                        }
                        else
                        {
                            return ds.Tables[0].Rows.Count + log + "a" + idcategoria + "<h1>Sin datos<h1>";
                        }
                    }
                    else
                    {
                        return "<h1>Ocurrio un error en la solicitud, no se ha obtenido respuesta<h1>";
                    }
                }
                else
                {
                    return "<h1>Ocurrio un error en la solicitud, es nulo<h1>";
                }


            }
            else
            {
                return "<h1>Ocurrio un error en la solicitud, no ha sido procesada<h1>";
            }

            return textrespuesta.ToString();
        }
        catch (Exception ex)
        {
            return "<h1>Ocurrio un error en la solicitud<h1>";
        }


    }


    public string generarPeliculaParticular(int idpelicula)
    {
        try
        {
            StringBuilder textrespuesta = new StringBuilder();
            DataSet ds = new DataSet();
            string log = "";

            if (servicioweb.selectDetailedMovie(idpelicula, ref ds, ref log))
            {
                //si la respuesta no genero error
                if (ds != null)
                {
                    if (ds.Tables.Count > 2)
                    {
                        if (ds.Tables[0].Rows.Count > 0)
                        {//datos de la pelicula: id, titulo, sipnosis, estreno, videolink, cantidad en stock
                            //recorrer las filas
                            textrespuesta.Append("<div id='closeline'><span id='close'>X</span></div>");
                            textrespuesta.Append("<div class='pelis_pelisinfotitle'>");
                            textrespuesta.Append("<h1 class='pelis_infodatatitle'>" + ds.Tables[0].Rows[0][1] + "</h1>");//obtener el titulo de la pelicula
                            textrespuesta.Append("</div>");
                            textrespuesta.Append("<div class='pelis_pelisinfobody'>");
                            textrespuesta.Append("<fieldset>");
                            textrespuesta.Append("<legend>Datos de la pelicula</legend>");
                            textrespuesta.Append("<div class='pelis_pelisinfosipnosisconta'>");
                            textrespuesta.Append("<fieldset>");
                            textrespuesta.Append("<legend>Sipnosis</legend>");
                            textrespuesta.Append("<div class='pelis_pelisinfosipnosis'>");
                            textrespuesta.Append(ds.Tables[0].Rows[0][2]);//la sipnosis de la pelicula
                            textrespuesta.Append("</div>");
                            textrespuesta.Append("</fieldset>");
                            textrespuesta.Append("</div>");
                            textrespuesta.Append("<div class='pelis_pelisinfodatageneral'>");
                            textrespuesta.Append("<fieldset>");
                            textrespuesta.Append("<legend>Datos Generales</legend>");
                            textrespuesta.Append("<div class='pelis_pelisinfodatageneralcontainer'>");
                            textrespuesta.Append("<div class='pelis_pelisinforowsim'>");
                            textrespuesta.Append("<div class='pelis_pelisinfocolsim'>Estreno</div>");
                            textrespuesta.Append("<div class='pelis_pelisinfocolsim'>" + ds.Tables[0].Rows[0][3].ToString().Substring(0, 11) + "</div>");//la fecha de estreno de la pelicula
                            textrespuesta.Append("</div>");
                            textrespuesta.Append("<div class='pelis_pelisinforowsim'>");
                            textrespuesta.Append("<div class='pelis_pelisinfocolsim'>Actores</div>");//*
                            textrespuesta.Append("<div class='pelis_pelisinfocolsim'>");
                            if (ds.Tables[2].Rows.Count > 0)
                            {//participacion en pelicula:nombreactor y personaje
                                //recorrer las filas
                                for (int a = 0; a < ds.Tables[2].Rows.Count; a++)
                                {
                                    //actor y personaje de cada pelicula
                                    textrespuesta.Append("<span class='pelis_pelisinfoactorpersonajes'>" + ds.Tables[2].Rows[a][0] + " (" + ds.Tables[2].Rows[a][1] + ") " + "</span>");//nombre actor y personaje
                                }

                            }
                            else
                            {
                                textrespuesta.Append("<span class='pelis_pelisinfoactorpersonajes'>N.A</span>");
                            }
                            textrespuesta.Append("</div>");
                            textrespuesta.Append("</div>");
                            textrespuesta.Append("<div class='pelis_pelisinforowsim'>");
                            textrespuesta.Append("<div class='pelis_pelisinfocolsim'>Genero</div>");
                            textrespuesta.Append("<div class='pelis_pelisinfocolsim'>");

                            //datos para la categoria de la pelicula
                            if (ds.Tables[1].Rows.Count > 0)
                            {//categoria de la pelicula:nombre
                                //recorrer las filas
                                for (int a = 0; a < ds.Tables[1].Rows.Count; a++)
                                {
                                    //categoria de la peliculas, pueden ser varias
                                    textrespuesta.Append("<span class='pelis_pelisinfocategorias'>" + ds.Tables[1].Rows[a][0] + "</span>");
                                }
                            }
                            else
                            {
                                textrespuesta.Append("<span class='pelis_pelisinfocategorias'>N.A</span>");
                            }
                            textrespuesta.Append("</div>");
                            textrespuesta.Append("</div>");
                            textrespuesta.Append("<div class='pelis_pelisinforowsim'>");
                            textrespuesta.Append("<div class='pelis_pelisinfocolsim'>Cantidad en stock</div>");
                            textrespuesta.Append("<div class='pelis_pelisinfocolsim'>" + ds.Tables[0].Rows[0][5] + "</div>");//cantidad de videopeliclas disponibles
                            textrespuesta.Append("</div>");
                            textrespuesta.Append("</div>");
                            textrespuesta.Append("</fieldset>");
                            textrespuesta.Append("</div>");
                            textrespuesta.Append("<div class='pelis_pelisinfovideodata'>");
                            textrespuesta.Append("<fieldset>");
                            textrespuesta.Append("<legend>Video</legend>");
                            textrespuesta.Append("<iframe width='560' height='315' src='" + ds.Tables[0].Rows[0][4] + "' frameborder='0' allowfullscreen></iframe>");//videolink youtube
                            textrespuesta.Append("</fieldset>");
                            textrespuesta.Append("</div>");
                            textrespuesta.Append("</fieldset>");
                            textrespuesta.Append("</div>");
                            textrespuesta.Append("<div id='pelis_pelisinfofooter'>");
                            textrespuesta.Append("<div class='pelis_pelisinforowsim'>");
                            textrespuesta.Append("<div class='pelis_pelisinfocolsim'><input type='button' id='sendreq' value='SOLICITAR' /></div>");
                            textrespuesta.Append("<div class='pelis_pelisinfocolsim'><input type='button' id='btncancel' value='CANCELAR' /></div>");
                            textrespuesta.Append("</div>");
                            textrespuesta.Append("</div>");
                            textrespuesta.Append("<input type='hidden' value='" + ds.Tables[0].Rows[0][0] + "' />");
                            textrespuesta.Append("</div>");
                        }
                        else
                        {
                            return ds.Tables[0].Rows.Count + log + "a" + idpelicula + "<h1>Sin datos<h1>";
                        }
                    }
                    else
                    {
                        return "<h1>Ocurrio un error en la solicitud, no se ha obtenido respuesta<h1>";
                    }
                }
                else
                {
                    return "<h1>Ocurrio un error en la solicitud, es nulo<h1>";
                }
            }
            else
            {
                return "<h1>Ocurrio un error en la solicitud<h1>";
            }


            return textrespuesta.ToString();
        }
        catch (Exception ex)
        {
            return "<h1>Ocurrio un error en la solicitud<h1>";
        }
    }

}